package com.tbit.main.dao.stat;

import com.tbit.main.pojo.AccountDayStat;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author LMY
 * @create 2022-11-09 16:32
 */
public interface AccountDayStatDao {

    /**
     * 根据运营区域和时间查询 日统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByAccountIdDateDay(Map<String, Object> map);

    /**
     * 根据运营区域和时间查询 日统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByRegionIdDateDay(Map<String, Object> map);

    /**
     * 根据运营区域和时间查询 周统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByAccountIdDateWeek(Map<String, Object> map);

    /**
     * 根据运营区域和时间查询 周统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByAccountIdWeatherDateWeek(Map<String, Object> map);

    /**
     * 根据运营区域和时间查询 周统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByRegionIdDateWeek(Map<String, Object> map);

    /**
     * 根据运营区域和时间查询 月统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByAccountIdDateMonth(Map<String, Object> map);

    /**
     * 根据运营区域和时间查询 月统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByAccountIdWeatherDateMonth(Map<String, Object> map);

    /**
     * 根据分区和时间查询 月统计
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getByRegionIdDateMonth(Map<String, Object> map);

    /**
     * 查询品牌区域数据
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getBrandIdAccountIdType(Map<String, Object> map);

    /**
     * 查询品牌数据
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getBrandIdType(Map<String, Object> map);

    /**
     * 查询品牌区域数据
     *
     * @param map
     * @return
     */
    List<AccountDayStat> getBrandIdAccountIdTypeSum(Map<String, Object> map);

    List<AccountDayStat> getAccountIdsTypeDate(Map<String, Object> map);

    List<AccountDayStat> getOrderByTime(@Param("accountId") Integer accountId, @Param("dateTime") Integer dateTime);
}
